home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / table / TableColumn.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.7 KB  |  218 lines

  1. package javax.swing.table;
  2.  
  3. import java.awt.Component;
  4. import java.beans.PropertyChangeListener;
  5. import java.io.Serializable;
  6. import javax.swing.JLabel;
  7. import javax.swing.JTable;
  8. import javax.swing.event.SwingPropertyChangeSupport;
  9.  
  10. public class TableColumn implements Serializable {
  11.    public static final String COLUMN_WIDTH_PROPERTY = "columWidth";
  12.    public static final String HEADER_VALUE_PROPERTY = "headerValue";
  13.    public static final String HEADER_RENDERER_PROPERTY = "headerRenderer";
  14.    public static final String CELL_RENDERER_PROPERTY = "cellRenderer";
  15.    protected int modelIndex;
  16.    protected Object identifier;
  17.    protected int width;
  18.    protected int minWidth;
  19.    private int preferredWidth;
  20.    protected int maxWidth;
  21.    protected TableCellRenderer headerRenderer;
  22.    protected Object headerValue;
  23.    protected TableCellRenderer cellRenderer;
  24.    protected TableCellEditor cellEditor;
  25.    protected boolean isResizable;
  26.    protected transient int resizedPostingDisableCount;
  27.    private SwingPropertyChangeSupport changeSupport;
  28.  
  29.    public TableColumn() {
  30.       this(0);
  31.    }
  32.  
  33.    public TableColumn(int var1) {
  34.       this(var1, 75, (TableCellRenderer)null, (TableCellEditor)null);
  35.    }
  36.  
  37.    public TableColumn(int var1, int var2) {
  38.       this(var1, var2, (TableCellRenderer)null, (TableCellEditor)null);
  39.    }
  40.  
  41.    public TableColumn(int var1, int var2, TableCellRenderer var3, TableCellEditor var4) {
  42.       this.modelIndex = var1;
  43.       this.width = var2;
  44.       this.preferredWidth = var2;
  45.       this.cellRenderer = var3;
  46.       this.cellEditor = var4;
  47.       this.minWidth = 15;
  48.       this.maxWidth = Integer.MAX_VALUE;
  49.       this.isResizable = true;
  50.       this.resizedPostingDisableCount = 0;
  51.       this.setHeaderRenderer(this.createDefaultHeaderRenderer());
  52.       this.headerValue = null;
  53.    }
  54.  
  55.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  56.       if (this.changeSupport == null) {
  57.          this.changeSupport = new SwingPropertyChangeSupport(this);
  58.       }
  59.  
  60.       this.changeSupport.addPropertyChangeListener(var1);
  61.    }
  62.  
  63.    protected TableCellRenderer createDefaultHeaderRenderer() {
  64.       1 var1 = new 1();
  65.       ((JLabel)var1).setHorizontalAlignment(0);
  66.       return var1;
  67.    }
  68.  
  69.    public void disableResizedPosting() {
  70.       ++this.resizedPostingDisableCount;
  71.    }
  72.  
  73.    public void enableResizedPosting() {
  74.       --this.resizedPostingDisableCount;
  75.    }
  76.  
  77.    public TableCellEditor getCellEditor() {
  78.       return this.cellEditor;
  79.    }
  80.  
  81.    public TableCellRenderer getCellRenderer() {
  82.       return this.cellRenderer;
  83.    }
  84.  
  85.    public TableCellRenderer getHeaderRenderer() {
  86.       return this.headerRenderer;
  87.    }
  88.  
  89.    public Object getHeaderValue() {
  90.       return this.headerValue;
  91.    }
  92.  
  93.    public Object getIdentifier() {
  94.       return this.identifier != null ? this.identifier : this.getHeaderValue();
  95.    }
  96.  
  97.    public int getMaxWidth() {
  98.       return this.maxWidth;
  99.    }
  100.  
  101.    public int getMinWidth() {
  102.       return this.minWidth;
  103.    }
  104.  
  105.    public int getModelIndex() {
  106.       return this.modelIndex;
  107.    }
  108.  
  109.    public int getPreferredWidth() {
  110.       return this.preferredWidth;
  111.    }
  112.  
  113.    public boolean getResizable() {
  114.       return this.isResizable;
  115.    }
  116.  
  117.    public int getWidth() {
  118.       return this.width;
  119.    }
  120.  
  121.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  122.       if (this.changeSupport != null) {
  123.          this.changeSupport.removePropertyChangeListener(var1);
  124.       }
  125.  
  126.    }
  127.  
  128.    public void setCellEditor(TableCellEditor var1) {
  129.       this.cellEditor = var1;
  130.    }
  131.  
  132.    public void setCellRenderer(TableCellRenderer var1) {
  133.       TableCellRenderer var2 = this.cellRenderer;
  134.       this.cellRenderer = var1;
  135.       if (this.changeSupport != null) {
  136.          this.changeSupport.firePropertyChange("cellRenderer", var2, this.cellRenderer);
  137.       }
  138.  
  139.    }
  140.  
  141.    public void setHeaderRenderer(TableCellRenderer var1) {
  142.       TableCellRenderer var2 = this.headerRenderer;
  143.       if (var1 == null) {
  144.          throw new IllegalArgumentException("Object is null");
  145.       } else {
  146.          this.headerRenderer = var1;
  147.          if (this.changeSupport != null) {
  148.             this.changeSupport.firePropertyChange("headerRenderer", var2, this.headerRenderer);
  149.          }
  150.  
  151.       }
  152.    }
  153.  
  154.    public void setHeaderValue(Object var1) {
  155.       Object var2 = this.headerValue;
  156.       this.headerValue = var1;
  157.       if (this.changeSupport != null) {
  158.          this.changeSupport.firePropertyChange("headerValue", var2, this.headerValue);
  159.       }
  160.  
  161.    }
  162.  
  163.    public void setIdentifier(Object var1) {
  164.       this.identifier = var1;
  165.    }
  166.  
  167.    public void setMaxWidth(int var1) {
  168.       this.maxWidth = Math.max(this.minWidth, var1);
  169.       if (this.width > var1) {
  170.          this.setWidth(var1);
  171.       }
  172.  
  173.    }
  174.  
  175.    public void setMinWidth(int var1) {
  176.       this.minWidth = Math.max(var1, 0);
  177.       if (this.width < var1) {
  178.          this.setWidth(var1);
  179.       }
  180.  
  181.    }
  182.  
  183.    public void setModelIndex(int var1) {
  184.       this.modelIndex = var1;
  185.    }
  186.  
  187.    public void setPreferredWidth(int var1) {
  188.       this.preferredWidth = Math.min(Math.max(var1, this.minWidth), this.maxWidth);
  189.    }
  190.  
  191.    public void setResizable(boolean var1) {
  192.       this.isResizable = var1;
  193.    }
  194.  
  195.    public void setWidth(int var1) {
  196.       int var2 = this.width;
  197.       this.width = Math.min(Math.max(var1, this.minWidth), this.maxWidth);
  198.       if (this.changeSupport != null && this.width != var2) {
  199.          this.changeSupport.firePropertyChange("columWidth", new Integer(var2), new Integer(this.width));
  200.       }
  201.  
  202.    }
  203.  
  204.    public void sizeWidthToFit() {
  205.       Component var1 = this.getHeaderRenderer().getTableCellRendererComponent((JTable)null, this.getHeaderValue(), false, false, 0, 0);
  206.       int var2 = var1.getPreferredSize().width;
  207.       if (var2 > this.getMaxWidth()) {
  208.          this.setMaxWidth(var2);
  209.       }
  210.  
  211.       if (var2 < this.getMinWidth()) {
  212.          this.setMinWidth(var2);
  213.       }
  214.  
  215.       this.setWidth(var2);
  216.    }
  217. }
  218.